草庐IT

c++ getline和stringstream

全部标签

android - 双 SIM 卡手机的 getLine1Number() 返回什么?

TelephonyManager的getLine1Number()方法在双卡手机(如LGOptimusNetDual)中返回什么?? 最佳答案 你只会得到一个数字......也许吧!首先,您返回的数字取决于设备。但同样重要的是,您是否会得到一个号码,以及这个号码是否就是电话号码,是完全无法预测的。这取决于SIM卡和运营商。在我的一个应用程序中,我开始尝试使用电话号码作为唯一ID,因为我希望用户能够轻松记忆起这个号码。对于亚洲、澳大利亚和欧洲的一些运营商而言,电话号码(line1number())根本没有存储在SIM卡上!对于其他人,

c++ - std::stringstream 的默认 `fill character` 是什么?

它是实现定义的还是标准建议流的默认填充字符?示例代码:#include#include#includeintmain(){std::stringstreamstream;stream使用clang++--stdlib=libstdc++$clang++--stdlib=libstdc++test.cpp$./a.out|hexdump0000000202020202020202032350a0a000000c$使用clang++--stdlib=libc++$clang++--stdlib=libc++test.cpp$./a.out|hexdump0000000fffffffffff

c++ - 我希望 cin 读取到 '\n' 但我不能使用 getline

我有一个以下格式的文本文件:infodata1data2infodata1data2data3data4...问题是:当使用getline()时,数据的数量(和长度)可能非常大并导致运行时问题。所以我无法将整行读入std::string。我尝试了以下方法:for(inti=0;i>info;while(cin.peek()!='\n'&&cin>>data){//dostuffwithdata}}然而cin.peek()并没有成功。信息在while循环中读入数据,程序把事情搞砸了。我该如何解决这个问题? 最佳答案 您可以尝试逐个字符

C++ 在 << 作为参数后使用 stringstream

是否可以编写一个接受字符串流并使其看起来像这样的方法,voidmethod(stringstr)voidprintStringStream(StringStream&ss){method(ss.str());}可以这样调用stringstreamvar;printStringStream(var我查找了ostream&对象,但我可能正在阅读this错误或只是没有正确实现。我真正想要的只是一种干净的方法,可以将内容作为字符串连接在一起并将其传递给函数。我能找到的最干净的东西是一个stringstream对象,但仍然有很多不足之处。注意事项:我不能使用很多c++11答案,因为我在Visua

我需要帮助弄清楚如何将getline放入PresentStringPrompt中以摆脱重复的代码

该程序要求您输入三个朋友和他们的披萨切片的直径。然后,它计算披萨的面积,并看到谁的切片最大。我需要一些帮助,以尝试将getline放入我的字符串功能中,以摆脱代码中的重复。#include#include#include#includeusingnamespacestd;stringpresentStringPrompt(string);doublepresentDoublePrompt(string);doublecomputeAreaOfCircle(double);constdoublepi=3.14159;intmain(){stringfirst;stringsecond;strin

c++ - `std::stringstream::fail()` 读后写应该返回什么值? (海湾合作委员会与 clang )

考虑以下代码片段:#include#includeintmain(){std::stringstreamss;ss>s;ssclang++trunk打印出如下结果:ss.eof()=truess.good()=falsess.bad()=falsess.fail()=falsess.str()=12345onwandboxg++trunk打印如下结果:ss.eof()=truess.good()=falsess.bad()=falsess.fail()=truess.str()=12345onwandbox如您所见,ss.fail()的值在两个编译器之间是不同的。在这种情况下,标准对s

c++ - 为什么 getline 的字符串版本是非成员函数?

getline函数有一个characterversion这是一个成员函数,也是一个globalversion这需要字符串。为什么他们不都是成员函数?当前的方式让它看起来好像没有字符串版本。 最佳答案 istream&istream::getline(char*s,streamsizen)是流接口(interface)的一部分。istream&getline(istream&is,string&str)是string库中的一个扩展方法(就像istream&operator>>(istream&,string&)).选择这种设计可能是为

c++ - std::stringstream 可以设置失败/坏位的方法?

我用于简单字符串拆分的一段常见代码如下所示:inlinestd::vectorsplit(conststd::string&s,chardelim){std::vectorelems;std::stringstreamss(s);std::stringitem;while(std::getline(ss,item,delim)){elems.push_back(item);}returnelems;}有人提到这会默默地“吞下”std::getline中发生的错误。当然,我同意是这样的。但我突然想到,在实践中这里可能会出现什么问题,我需要担心。基本上这一切都归结为:inlinestd::

c++ - 从 std::stringstream 读取 uint8_t 作为数字类型

我的理解是,从stringstream读取uint8_t是一个问题,因为stringstream将解释uint8_t作为char。我想知道如何从stringstream中读取uint8_t作为数字类型。比如下面的代码:#include#includeusingnamespacestd;intmain(){uint8_tui;std::stringstreamss("46");ss>>ui;cout打印出52。我希望它打印出46。编辑:另一种方法是从stringstream中读取一个string,然后将解决方案转换为uint8_t,但这破坏了nice链接属性。比如在我实际要写的代码中,经

c++ - 对于字符串对象连接,stringstream 是否比字符串的运算符 '+' 更好?

比如我有两个字符串对象:stringstr_1,str_2。我想连接到他们。我可以使用两种方法:方法一:std::stringstreamss;//std::stringstr_1("hello");//std::stringstr_2("world");ss方法二:std::stringstr_1("hello");std::stringstr_2("world");conststd::stringdst_str=str_1+str_2;因为字符串的缓冲区是只读的,当你改变字符串对象时,它的缓冲区会被销毁并创建一个新的缓冲区来存储新的内容。那么方法一比方法二好吗?我的理解正确吗?